Systems and methods for performing color adjustment of pixels on a color display

ABSTRACT

System and methods are provided for performing saturation adjustment of one or more pixels. In one embodiment, an input color value of a pixel is received. The input color value includes an input saturation component. An adjusted color value is extracted from a predetermined look-up table that maps the input color value to the adjusted color value, the adjusted color value having an adjusted saturation component that is different from the input saturation component. The adjusted color value is output.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims priority to and benefit from U.S. Provisional Patent Application No. 61/437,943, filed on Jan. 31, 2011, and entitled “Methods to Enhance EPD Color Display For Real Time Implementation,” the entirety of which is incorporated herein by reference.

FIELD

The technology described in this patent document relates generally to image processing.

BACKGROUND

Various display technologies have been developed for different applications. For example, electrophoretic displays (EPDs) are designed for electronic paper applications to mimic an appearance of ordinary ink on paper. An EPD generally includes a plurality of charged particles dispersed in an electrophoretic layer. The charged particles migrate under influence of an electric field to reflect ambient light for displaying images.

Conventionally, EPD panels are monochrome, typically with 16 levels of grayscale. Lately, color EPD panels have been developed by adding color filter array (CFA) over the monochrome EPD panels. These color EPD panels have certain disadvantages in brightness and color saturation, because the CFA passes through only a fraction of visible light and attenuates both incident light and reflected light significantly. Therefore, it is highly desirable to boost the color saturation for EPD color panels.

Because input image data for an EPD color panel are often represented in a red-green-blue (RGB) color space, a conventional approach to enhance color EPD's brightness and color saturation is to boost the RGB values of pixels on an EPD color panel by a certain amount. However, this approach often causes color shifting and results in loss of color fidelity.

There is another conventional approach to enhance brightness and color saturation of EPD color panels. Input image data can be converted from the RGB color space to a hue-saturation-lightness (HSL) color space, the saturation values of the HSL image data may be adjusted, and then the adjusted HSL image data may be converted back to the RGB color space. FIG. 1 illustrates a conventional system 100 for performing saturation adjustment of input color values. A color space converter 102 converts an RGB representation 104 of an input pixel color value 106 into an HSL representation 108 that includes a hue value, a saturation value and a lightness value. A saturation-adjustment component 110 adjusts the saturation value of the HSL representation 108, and outputs a new HSL representation 112. A color space converter 114 converts the new HSL representation 112 into a new RGB representation 116 which is output for providing an adjusted pixel color value 118.

SUMMARY

In accordance with the teachings described herein, systems and methods are provided for performing saturation adjustment of one or more pixels. In one embodiment, an input RGB color value of a pixel is received, the input color value including an input saturation. An adjusted color value from a predetermined look-up table that maps the input color value to the adjusted color value is extracted using a data processor, the adjusted color value having an adjusted saturation that is different from the input saturation. Additionally, the adjusted color value is output in RGB.

In another embodiment, a processor-implemented method is provided for performing saturation adjustment of one or more pixels. An input RGB color value of a pixel is received, the input color value including an input saturation. An adjusted color value based on a predetermined saturation-adjustment matrix is generated using a data processor, the adjusted color value having an adjusted saturation that is different from the input saturation. Moreover, the adjusted color value is output in RGB.

In yet another embodiment, a processor-implemented system for performing saturation adjustment of one or more pixels includes one or more data processors and a computer-readable storage medium. The computer-readable storage medium is encoded with instructions for commanding the one or more data processors to execute steps including: receiving an input RGB color value of a pixel, the input color value including an input saturation, extracting, using a data processor, an adjusted color value from a predetermined look-up table that maps the input color value to the adjusted color value, the adjusted color value having an adjusted saturation that is different from the input saturation, and outputting the adjusted RGB color value.

According to another embodiment, a processor-implemented system for performing saturation adjustment of one or more pixels includes one or more data processors and a computer-readable storage medium. The computer-readable storage medium is encoded with instructions for commanding the one or more data processors to execute steps including: receiving an input RGB color value of a pixel, the input color value including an input saturation, generating, using a data processor, an adjusted color value based on a predetermined saturation-adjustment matrix, the adjusted color value having an adjusted saturation that is different from the input saturation, and outputting the adjusted RGB color value.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates a conventional system for performing saturation adjustment of input color values.

FIG. 2 depicts an example system for generating a look-up table for saturation adjustment.

FIG. 3 depicts an example system for performing saturation adjustment using a predetermined look-up table.

FIG. 4 illustrates an example flow diagram depicting a method for generating a look-up table for saturation adjustment.

FIG. 5 illustrates an example flow diagram depicting a method for performing saturation adjustment using a predetermined look-up table.

FIG. 6 illustrates an example scheme for performing saturation adjustment using a predetermined saturation-adjustment matrix.

FIG. 7 illustrates an example flow diagram depicting a method for performing saturation adjustment using a predetermined saturation-adjustment matrix.

DETAILED DESCRIPTION

Referring to FIG. 1, if the system 100 is used for real-time processing of each pixel of an EPD display, a large amount of computation is often necessary, including floating point computations, which results in a high demand of resources and a low refresh rate. FIGS. 2 and 3 illustrate an example of a more efficient way for performing saturation adjustment using a predetermined look-up table.

FIG. 2 depicts an example system 200 for generating a look-up table for saturation adjustment. As shown in FIG. 2, a color space converter 202 converts an RGB representation 204 of an original pixel color value 206 into an HSL representation 208. A saturation-adjustment component 210 adjusts the saturation value of the HSL representation 208, and outputs a new HSL representation 212. For example, the saturation value of the HSL representation 208 may be adjusted by a saturation factor of P, where P is larger than 1. A color space converter 214 converts the new HSL representation 212 into a new RGB representation 216 which indicates an adjusted color value. A mapping between the original color value 206 and the adjusted color value is stored in a look-up table 218.

Original pixel color values of each pixel of an EPD display may be processed similarly as discussed above, and mappings between the adjusted color values and the original pixel color values may be stored in the look-up table. During subsequent real-time processing of input image data, the predetermined look-up table may be loaded into a memory and adjusted color values corresponding to input color values can be extracted from the look-up table by searching for original color values that match the input color values, saving a significant amount of computation time.

FIG. 3 depicts an example system 300 for performing saturation adjustment using a predetermined look-up table. In one embodiment, the predetermined look-up table 306 may be generated in a way similar to what is shown in FIG. 2. Once generated, the same look-up table 306 may be used for subsequent processing of different input image data.

In operation, an input pixel color value 302 is received. The look-up table 306 is searched based on a RGB representation 304 of the input pixel color value 302. If an original color value in the look-up table 306 is found to match the input pixel color value 302, an adjusted color value 310 that is mapped to the original color value in the look-up table 306 is output with an RGB representation 308.

FIG. 4 illustrates an example flow diagram depicting a method for generating a look-up table for saturation adjustment. At 402, an original color value is received, where the original color value is represented in the RGB color space. The original color value is converted from the RGB color space to the HSL color space to generate an HSL representation for the original color value at 404. The saturation component of the HSL representation is changed, and an intermediate HSL representation is generated at 406. At 408, the intermediate HSL representation is converted back to the RGB color space to generate a final RGB representation which depicts an adjusted color value. A mapping of the original color value and the adjusted color value is stored in a look-up table at 410. All original color values of pixels on a color display may be processed similarly to generate adjusted color values to populate the look-up table for subsequent processing of input image data.

FIG. 5 illustrates an example flow diagram depicting a method for performing saturation adjustment using a predetermined look-up table. At 502, an input color value of a pixel is received. For example, the input color value of the pixel is represented in the RGB color space. A predetermined look-up table is searched for an original color value that matches the input color value, and an adjusted color value that corresponds to the original color value in the look-up table is extracted at 504. The adjusted color value is output at 506. Compared with the input color value, the adjusted color value indicates a different color saturation. For example, if both the adjusted color value and the input color value are represented in the HSL color space, then the adjusted color value will have a higher saturation value than the input color value.

Alternatively, saturation adjustment of input image data may be performed using a saturation-adjustment matrix. This may eliminate a need for computation related to conversions between the RGB color space and the HSL color space. FIG. 6 illustrates an example scheme for performing saturation adjustment using a predetermined saturation-adjustment matrix.

An input color value 602 is received. Saturation adjustment of the input color value 602 is performed by multiplying an RGB representation 604 of the input pixel color value 602 by the predetermined saturation-adjustment matrix 606. A new RGB representation 608 is thus generated, and an adjusted color value 610 is output.

The saturation-adjustment matrix may be determined in various different ways. For example, the saturation-adjustment matrix 606 may be a 3×3 matrix, such as

$\begin{bmatrix} C_{00} & C_{01} & C_{0\; 2} \\ C_{10} & C_{11} & C_{12} \\ C_{20} & C_{21} & C_{22} \end{bmatrix}.$

The coefficients of the 3×3 saturation-adjustment matrix 606 may be determined based on a saturation factor, SF, according to the following equations. C ₀₀=0.25×(1−SF)+0.5×SF; C ₀₁=0.50×(1−SF); C ₀₂=0.25×(1−SF); C ₁₀=0.25×(1−SF); C ₁₁=0.50×(1−SF)+0.5×SF; C ₁₂=0.25×(1−SF); C ₂₀=0.25×(1−SF); C ₂₁=0.50×(1−SF); C ₂₂=0.25×(1−SF)+0.5×SF.

For example, the value of the saturation factor, SF, may be between 1 and 2. The coefficients of the saturation-adjustment matrix 606 may be generated in fixed-point numbers to reduce computation time.

FIG. 7 illustrates an example flow diagram depicting a method for performing saturation adjustment using a predetermined saturation-adjustment matrix. At 702, an input color value of a pixel is received. In this example, the input color value of the pixel is represented in the RGB color space. The RGB representation of the input color value is multiplied by a predetermined saturation-adjustment matrix to generate a new RGB representation at 704. The new RGB representation corresponds to an adjusted color value. The adjusted color value is output at 706.

This written description uses examples to disclose the invention, include the best mode, and also to enable a person skilled in the art to make and use the invention. The patentable scope of the invention may include other examples that occur to those skilled in the art. For example, systems and methods disclosed herein may be applied for different color displays, such as liquid crystal displays, light emitting diode displays, electroluminescent displays, plasma display panels, organic light emitting diode displays, surface-conduction electron-emitter displays, and nanocrystal displays. As an example, systems and methods can be configured as disclosed herein to enhance color saturation with much lower computational demand. 

It is claimed:
 1. A processor-implemented method for performing saturation adjustment of one or more pixels, the method comprising: receiving an input color value of a pixel, the input color value including an input saturation component; extracting, using a data processor, an adjusted color value from a predetermined look-up table that maps the input color value to the adjusted color value, the adjusted color value having an adjusted saturation component that is different from the input saturation component; and outputting the adjusted color value; wherein the look-up table is generated through steps of: receiving an original color value represented in a red-green-blue (RGB) color space; convening the RGB representation of the original color value to a representation in a hue-saturation-lightness (HSL) color space, the HSL representation of the original color value including an original saturation component; generating an intermediate representation in the HSL color space by changing the original saturation component of the HSL representation of the original color value based on a predetermined criterion; converting the intermediate representation in the HSL color space to a final representation in the RGB color space, the final representation in the RGB color space corresponding to a final color value; and storing a mapping of the original color value and the color value into the look-up table.
 2. The method of claim 1, wherein the input color value is represented in the RGB color space.
 3. The method of claim 2, wherein the adjusted color value is represented in the RGB color space.
 4. The method of claim 1, wherein the predetermined criterion includes multiplying the original saturation component by a saturation-adjustment ratio.
 5. The method of claim 4, wherein the saturation-adjustment ratio is larger than
 1. 6. The method of claim 1, wherein the pixel is included in an electrophoretic display.
 7. A processor-implemented method for performing saturation adjustment of one or more pixels, the method comprising: receiving an input color value of a pixel, the input color value including an input saturation component; generating, using a data processor, an adjusted color value based on a predetermined saturation-adjustment matrix, the adjusted color value having an adjusted saturation component that is different from the input saturation component; and outputting the adjusted color value; wherein the input color value and the adjusted color value are represented in a red-green-blue (RGB) color space; wherein the RGB representation of the adjusted color value is generated by multiplying the RGB representation of the input color value by the saturation-adjustment matrix; wherein the saturation-adjustment matrix includes a 3×3 matrix $\begin{bmatrix} C_{00} & C_{01} & C_{0\; 2} \\ C_{10} & C_{11} & C_{12} \\ C_{20} & C_{21} & C_{22} \end{bmatrix};$ and wherein C ₀₀=0.25×(1−SF)+0.5×SF; C ₀₁=0.50×(1−SF); C ₀₂=0.25×(1−SF); C ₁₀=0.25×(1−SF); C ₁₁=0.50×(1−SF)+0.5×SF; C ₁₂=0.25×(1−SF); and C ₂₀=0.25×(1−SF); C ₂₁=0.50×(1−SF); C ₂₂=0.25×(1−SF)+0.5×SF; where SF represents a saturation-adjustment ratio.
 8. The method of claim 7, wherein the saturation-adjustment ratio is between 1 and
 2. 9. A processor-implemented system for performing saturation adjustment of one or more pixels, said system comprising: one or more data processors; a computer-readable storage medium encoded with instructions for commanding the one or more data processors to execute steps including: receiving an input color value of a pixel, the input color value including an input saturation component; extracting, using a data processor, an adjusted color value from a predetermined look-up table that maps the input color value to the adjusted color, the adjusted color value having an adjusted saturation component that is different front the input saturation component; and outputting the adjusted color value; wherein the instructions are adapted for commanding the one or more data processors to generate the look-up table through steps including: receiving an original color value represented in a red-green-blue (RGB) color space; converting the RGB representation of the original color value to a representation in a hue-saturation-lightness (HSL) color space, the HSL representation of the original color value including an original saturation component; generating an intermediate representation in the HSL color space by changing the original saturation component of the HSL representation of the original color value based on a predetermined criterion; converting the intermediate representation in the HSL color space to a final representation in the RGB color space, the final representation in the RGB color space corresponding to a final color value; and storing a mapping of the original color value and the final color value into the look-up table.
 10. The system of claim 9, wherein the predetermined criterion includes multiplying the original saturation component by a saturation-adjustment ratio.
 11. A processor-implemented system for performing color adjustment of one or more pixels, said system comprising: one or more data processors; a computer-readable storage medium encoded with instructions for commanding the one or more data processors to execute steps including: receiving an input color value of a pixel, the input color value including an input saturation component; generating, using a data processor, an adjusted color value based on a predetermined saturation-adjustment matrix, the adjusted color value having an adjusted saturation component that is different from the input saturation component; and outputting the adjusted color value; wherein the input color value and the adjusted color value are represented in a red-green-blue (RGB) color space; wherein the RGB representation of the adjusted color value is generated by multiplying the RGB representation of the input color value by the saturation-adjustment matrix; wherein the saturation-adjustment matrix includes a 3×3 matrix $\begin{bmatrix} C_{00} & C_{01} & C_{0\; 2} \\ C_{10} & C_{11} & C_{12} \\ C_{20} & C_{21} & C_{22} \end{bmatrix};$ and wherein C ₀₀=0.25×(1−SF)+0.5×SF; C ₀₁=0.50×(1−SF); C ₀₂=0.25×(1−SF); C ₁₀=0.25×(1−SF); C ₁₁=0.50×(1−SF)+0.5×SF; C ₁₂=0.25×(1−SF); and C ₂₀=0.25×(1−SF); C ₂₁=0.50×(1−SF); C ₂₂=0.25×(1−SF)+0.5×SF; where SF represents a saturation-adjustment ratio. 